package exercicio00;

import java.util.Date;
import java.util.Vector;


public class Sala {
	
	final private static long maxTempoSessao = 120; // 120 minutos 
 
	private int capacidade;
	 
	private Conferencia[] conferencia;
	 
	private Vector<Sessao> sessoes;
	 
	public Sala() {

		sessoes = new Vector<Sessao>();
	}
	
	public Vector<Sessao> getSessoes() {

		return sessoes;
	}
	
	public void addSessao(Sessao sessao) {
		Date dataHora = sessao.getDataHora();
		
		if (dataHora != null) {
			if (isDataHoraDisponivel(dataHora) == false) {
				throw new RuntimeException("DataHora indisponivel para a sala!");
			}
		}
		
		sessoes.add(sessao);
		sessao.setSala(this);
	}
	
	public boolean isDataHoraDisponivel(Date aDataHora) {
		boolean isDisp = true;
		
		for (Sessao sessao : sessoes) {
			Date dataHora = sessao.getDataHora();
			
			if (dataHora != null) {
				long diferenca = Math.abs(dataHora.getTime() - aDataHora.getTime());
				
				if (diferenca <= (1000 * 60 * maxTempoSessao)) {
					isDisp = false;
					break;
				}
				
			}
		}
		return isDisp;
	}
	 
}
 
